package model.compresion;
import java.util.ArrayList;

import model.registro.RegistroSimbolos;

public class TablaProbabilidades {

	private ArrayList<RegistroSimbolos> aTablaProbabilidades;
	double total;
	
	
	

	public double getTotal() {
		return total;
	}

	public void setTotal(double total) {
		this.total = total;
	}

	public TablaProbabilidades() {
		aTablaProbabilidades=new ArrayList<RegistroSimbolos>();
		//Creamos 1 RegistroSimbolo por cada simbolo del unicode y los metemos en RS
		int i = 0;	
		while(i<65538){
			RegistroSimbolos tempRegistro = new RegistroSimbolos();
			aTablaProbabilidades.add(tempRegistro);
			i++;
		}
		total = 65538;
	}
	
	public void aumentarFrecuencia(int pos) {
		this.aTablaProbabilidades.get(pos).setProbabilidad(this.aTablaProbabilidades.get(pos).getProbabilidad() + 1L)  ;
		this.total++;
	}
	
	public void aumentarFrecuencia(int pos, long cantidad) {
		this.aTablaProbabilidades.get(pos).setProbabilidad(this.aTablaProbabilidades.get(pos).getProbabilidad() + cantidad)  ;
		this.total+= cantidad;
	}
	
	public RegistroSimbolos GetSimbolo(int xIndice) throws IndexOutOfBoundsException {
		return aTablaProbabilidades.get(xIndice);		
	}

	public void setATablaProbabilidades(ArrayList<RegistroSimbolos> tablaProbabilidades) {
		aTablaProbabilidades = tablaProbabilidades;
	}
}
